Our goal here is to look at the large and small particle size data.

Tempted to focus on station 043 again, so I can have fewer points and save my color coding.

library(tidyverse)
library(cowplot)
library(plotly)
pass <- function(x){x}

Load all data

unbinned_DepthSummary <- read_csv("dataOut/unbinned_DepthSummary.csv")
unbinned_EachSize <- read_csv("dataOut/unbinned_EachSize.csv")
binned_DepthSummary <- read_csv("dataOut/binned_DepthSummary.csv")
binned_EachSize <- read_csv("dataOut/binned_EachSize.csv")

Binned

binned_class_DepthSummary <- binned_DepthSummary %>%
  select(depth, profile, tot_TotParticles:big_speed, small_icp:big_psd) %>%
  pivot_longer(cols = c(-depth, -profile)) %>%
  separate(name, c("class", "variable"), extra = "merge") %>%
  pivot_wider(names_from = variable)

binned_class_DepthSummary %>% head
binndPlotable <- binned_class_DepthSummary %>% filter(profile == "stn_043", class != "tot")

plot_nparticles <- binndPlotable %>% ggplot(aes(x = nparticles, y = depth, shape = class)) + geom_point(alpha = 0.5, size = 3) + scale_y_reverse(breaks = seq(from = 0, to = 2500, by = 100)) + scale_x_log10() + guides(colour = FALSE) + labs(x = "#Particles/L") + theme_cowplot()

ggplotly(plot_nparticles)

# ggplotly(plot_biovolume)
# ggplotly(plot_flux)
# ggplotly(plot_speed)
# ggplotly(plot_psd)
# 
# cowplot::plot_grid(plot_nparticles,plot_biovolume, plot_flux, plot_speed, plot_psd)
long_binned <- binned_class_DepthSummary <- binned_DepthSummary %>%
  select(depth, profile, tot_TotParticles:big_speed, small_icp:big_psd) %>%
  pivot_longer(cols = c(-depth, -profile)) %>%
  separate(name, c("class", "variable"), extra = "merge") %>%
  filter(class != "tot", profile == "stn_043", !variable %in% c("nnparticles", "flux", "TotParticles"))

head(long_binned)
longPlt <- long_binned %>% ggplot(aes(x = value, y = depth, shape = class)) + geom_point(alpha = 0.5, size = 3) + scale_y_reverse(breaks = seq(from = 0, to = 2500, by = 200)) + scale_x_log10() + guides(colour = FALSE) + labs(x = "Value") + theme_cowplot() + facet_wrap(~variable, scales = "free_x", ncol = 2)
longPlt

We would have to plot these seperately to have appropriate x labels.

Fun fact. The bulk of flux is from small particles.

PSD

long_psd_binned <- binned_class_DepthSummary <- binned_DepthSummary %>%
  select(depth, profile, small_icp:big_psd) %>%
  pivot_longer(cols = c(-depth, -profile)) %>%
  separate(name, c("class", "variable"), extra = "merge") %>%
  filter(class != "tot", profile == "stn_043", !variable %in% c("nnparticles", "flux", "TotParticles"))
longPsdPlt <- long_psd_binned %>% ggplot(aes(x = value, y = depth, shape = class, col = class)) + geom_point(alpha = 0.5, size = 3) + scale_y_reverse(breaks = seq(from = 0, to = 2500, by = 200)) + scale_x_continuous() + guides(colour = FALSE) + labs(x = "Value") + theme_cowplot() + facet_wrap(~variable, scales = "free_x", ncol = 2)
longPsdPlt

Huh. There is a general flattening of the curve. That is, the large particles generally have a steeper PSD than the smaller particles.

long_psd_binned <- binned_DepthSummary %>%
  select(depth, profile, small_icp:big_psd, psd, icp) %>%
  pivot_longer(cols = c(-depth, -profile)) %>%
  separate(name, c("class", "variable"), extra = "merge", fill = "left") %>%
  mutate(class = replace_na(class, "tot")) %>%
  filter(profile == "stn_043") %>%
  #pivot_wider(names_from = variable) %>%
  pass
longPsdPlt <- long_psd_binned %>% ggplot(aes(x = value, y = depth, shape = class, fill = class)) + geom_point(alpha = 0.5, size = 3) + scale_y_reverse(breaks = seq(from = 0, to = 2500, by = 200)) + scale_x_continuous() + guides(colour = FALSE) + labs(x = "Value") + theme_cowplot() + facet_wrap(~variable, scales = "free_x", ncol = 2) + scale_shape_manual(values = 21:25) +
scale_fill_manual(values = c("tot" = "black", "big" = "blue", "small" = "red"))
longPsdPlt

Something is screwing up my legend, but the fact is the small particles define the PSD. Big particles tend to have steeper PSD, indicating a flattening of the curve at smaller values.

https://stackoverflow.com/questions/21865207/adding-legend-ggplot-doesnt-work

Debug

test <- long_psd_binned %>% filter(depth < 200, variable == "psd") %>% select(-c(profile, variable))
test %>% head

https://stackoverflow.com/questions/43266636/incorrect-shape-and-fill-of-ggplot-legend

longPsdPlt <- test %>% ggplot(aes(x = value, y = depth, shape = class, fill = class)) + geom_point(alpha = 0.5, size = 3) + scale_y_reverse(breaks = seq(from = 0, to = 200, by = 50)) + scale_x_continuous()+ labs(x = "Value") + theme_cowplot()  + scale_shape_manual(values = 21:25) +
scale_fill_manual(values = c("black", "blue", "red"), breaks = c("tot", "big", "small"), labels = c("tot", "big", "small"))
longPsdPlt
longPsdPlt <- test %>% ggplot(aes(x = value, y = depth, shape = class, fill = class)) + geom_point(alpha = 0.5, size = 3) + scale_y_reverse(breaks = seq(from = 0, to = 200, by = 50)) + scale_x_continuous()+ labs(x = "Value") + theme_cowplot()  + scale_shape_manual(values = 21:25) +
scale_fill_manual(values = c("tot" = "black", "big" = "blue", "small" = "red"))
longPsdPlt

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKT3VyIGdvYWwgaGVyZSBpcyB0byBsb29rIGF0IHRoZSBsYXJnZSBhbmQgc21hbGwgcGFydGljbGUgc2l6ZSBkYXRhLgoKVGVtcHRlZCB0byBmb2N1cyBvbiBzdGF0aW9uIDA0MyBhZ2Fpbiwgc28gSSBjYW4gaGF2ZSBmZXdlciBwb2ludHMgYW5kIHNhdmUgbXkgY29sb3IgY29kaW5nLgoKCmBgYHtyLCBtZXNzYWdlID0gRkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGNvd3Bsb3QpCmxpYnJhcnkocGxvdGx5KQpwYXNzIDwtIGZ1bmN0aW9uKHgpe3h9CmBgYAoKIyBMb2FkIGFsbCBkYXRhCmBgYHtyLCBtZXNzYWdlID0gRkFMU0V9CnVuYmlubmVkX0RlcHRoU3VtbWFyeSA8LSByZWFkX2NzdigiZGF0YU91dC91bmJpbm5lZF9EZXB0aFN1bW1hcnkuY3N2IikKdW5iaW5uZWRfRWFjaFNpemUgPC0gcmVhZF9jc3YoImRhdGFPdXQvdW5iaW5uZWRfRWFjaFNpemUuY3N2IikKYmlubmVkX0RlcHRoU3VtbWFyeSA8LSByZWFkX2NzdigiZGF0YU91dC9iaW5uZWRfRGVwdGhTdW1tYXJ5LmNzdiIpCmJpbm5lZF9FYWNoU2l6ZSA8LSByZWFkX2NzdigiZGF0YU91dC9iaW5uZWRfRWFjaFNpemUuY3N2IikKYGBgCgojIEJpbm5lZAoKYGBge3J9CmJpbm5lZF9jbGFzc19EZXB0aFN1bW1hcnkgPC0gYmlubmVkX0RlcHRoU3VtbWFyeSAlPiUKICBzZWxlY3QoZGVwdGgsIHByb2ZpbGUsIHRvdF9Ub3RQYXJ0aWNsZXM6YmlnX3NwZWVkLCBzbWFsbF9pY3A6YmlnX3BzZCkgJT4lCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBjKC1kZXB0aCwgLXByb2ZpbGUpKSAlPiUKICBzZXBhcmF0ZShuYW1lLCBjKCJjbGFzcyIsICJ2YXJpYWJsZSIpLCBleHRyYSA9ICJtZXJnZSIpICU+JQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSB2YXJpYWJsZSkKCmJpbm5lZF9jbGFzc19EZXB0aFN1bW1hcnkgJT4lIGhlYWQKYGBgCgoKCmBgYHtyfQpiaW5uZFBsb3RhYmxlIDwtIGJpbm5lZF9jbGFzc19EZXB0aFN1bW1hcnkgJT4lIGZpbHRlcihwcm9maWxlID09ICJzdG5fMDQzIiwgY2xhc3MgIT0gInRvdCIpCgpwbG90X25wYXJ0aWNsZXMgPC0gYmlubmRQbG90YWJsZSAlPiUgZ2dwbG90KGFlcyh4ID0gbnBhcnRpY2xlcywgeSA9IGRlcHRoLCBzaGFwZSA9IGNsYXNzKSkgKyBnZW9tX3BvaW50KGFscGhhID0gMC41LCBzaXplID0gMykgKyBzY2FsZV95X3JldmVyc2UoYnJlYWtzID0gc2VxKGZyb20gPSAwLCB0byA9IDI1MDAsIGJ5ID0gMTAwKSkgKyBzY2FsZV94X2xvZzEwKCkgKyBndWlkZXMoY29sb3VyID0gRkFMU0UpICsgbGFicyh4ID0gIiNQYXJ0aWNsZXMvTCIpICsgdGhlbWVfY293cGxvdCgpCgpnZ3Bsb3RseShwbG90X25wYXJ0aWNsZXMpCiMgZ2dwbG90bHkocGxvdF9iaW92b2x1bWUpCiMgZ2dwbG90bHkocGxvdF9mbHV4KQojIGdncGxvdGx5KHBsb3Rfc3BlZWQpCiMgZ2dwbG90bHkocGxvdF9wc2QpCiMgCiMgY293cGxvdDo6cGxvdF9ncmlkKHBsb3RfbnBhcnRpY2xlcyxwbG90X2Jpb3ZvbHVtZSwgcGxvdF9mbHV4LCBwbG90X3NwZWVkLCBwbG90X3BzZCkKCmBgYAoKYGBge3J9CmxvbmdfYmlubmVkIDwtIGJpbm5lZF9jbGFzc19EZXB0aFN1bW1hcnkgPC0gYmlubmVkX0RlcHRoU3VtbWFyeSAlPiUKICBzZWxlY3QoZGVwdGgsIHByb2ZpbGUsIHRvdF9Ub3RQYXJ0aWNsZXM6YmlnX3NwZWVkKSAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IGMoLWRlcHRoLCAtcHJvZmlsZSkpICU+JQogIHNlcGFyYXRlKG5hbWUsIGMoImNsYXNzIiwgInZhcmlhYmxlIiksIGV4dHJhID0gIm1lcmdlIikgJT4lCiAgZmlsdGVyKGNsYXNzICE9ICJ0b3QiLCBwcm9maWxlID09ICJzdG5fMDQzIiwgIXZhcmlhYmxlICVpbiUgYygibm5wYXJ0aWNsZXMiLCAiZmx1eCIsICJUb3RQYXJ0aWNsZXMiKSkKCmhlYWQobG9uZ19iaW5uZWQpCmBgYAoKYGBge3IsIGZpZy53aWR0aD03LCBmaWcuaGVpZ2h0PSA3fQpsb25nUGx0IDwtIGxvbmdfYmlubmVkICU+JSBnZ3Bsb3QoYWVzKHggPSB2YWx1ZSwgeSA9IGRlcHRoLCBzaGFwZSA9IGNsYXNzKSkgKyBnZW9tX3BvaW50KGFscGhhID0gMC41LCBzaXplID0gMykgKyBzY2FsZV95X3JldmVyc2UoYnJlYWtzID0gc2VxKGZyb20gPSAwLCB0byA9IDI1MDAsIGJ5ID0gMjAwKSkgKyBzY2FsZV94X2xvZzEwKCkgKyBndWlkZXMoY29sb3VyID0gRkFMU0UpICsgbGFicyh4ID0gIlZhbHVlIikgKyB0aGVtZV9jb3dwbG90KCkgKyBmYWNldF93cmFwKH52YXJpYWJsZSwgc2NhbGVzID0gImZyZWVfeCIsIG5jb2wgPSAyKQpsb25nUGx0CmBgYAoKV2Ugd291bGQgaGF2ZSB0byBwbG90IHRoZXNlIHNlcGVyYXRlbHkgdG8gaGF2ZSBhcHByb3ByaWF0ZSB4IGxhYmVscy4KCkZ1biBmYWN0LiBUaGUgYnVsayBvZiBmbHV4IGlzIGZyb20gc21hbGwgcGFydGljbGVzLgoKIyBQU0QKCmBgYHtyfQpsb25nX3BzZF9iaW5uZWQgPC0gYmlubmVkX2NsYXNzX0RlcHRoU3VtbWFyeSA8LSBiaW5uZWRfRGVwdGhTdW1tYXJ5ICU+JQogIHNlbGVjdChkZXB0aCwgcHJvZmlsZSwgc21hbGxfaWNwOmJpZ19wc2QsIHBzZCwgaWNwKSAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IGMoLWRlcHRoLCAtcHJvZmlsZSkpICU+JQogIHNlcGFyYXRlKG5hbWUsIGMoImNsYXNzIiwgInZhcmlhYmxlIiksIGV4dHJhID0gIm1lcmdlIikgJT4lCiAgZmlsdGVyKGNsYXNzICE9ICJ0b3QiLCBwcm9maWxlID09ICJzdG5fMDQzIiwgIXZhcmlhYmxlICVpbiUgYygibm5wYXJ0aWNsZXMiLCAiZmx1eCIsICJUb3RQYXJ0aWNsZXMiKSkKYGBgCgpgYGB7cn0KbG9uZ1BzZFBsdCA8LSBsb25nX3BzZF9iaW5uZWQgJT4lIGdncGxvdChhZXMoeCA9IHZhbHVlLCB5ID0gZGVwdGgsIHNoYXBlID0gY2xhc3MsIGNvbCA9IGNsYXNzKSkgKyBnZW9tX3BvaW50KGFscGhhID0gMC41LCBzaXplID0gMykgKyBzY2FsZV95X3JldmVyc2UoYnJlYWtzID0gc2VxKGZyb20gPSAwLCB0byA9IDI1MDAsIGJ5ID0gMjAwKSkgKyBzY2FsZV94X2NvbnRpbnVvdXMoKSArIGd1aWRlcyhjb2xvdXIgPSBGQUxTRSkgKyBsYWJzKHggPSAiVmFsdWUiKSArIHRoZW1lX2Nvd3Bsb3QoKSArIGZhY2V0X3dyYXAofnZhcmlhYmxlLCBzY2FsZXMgPSAiZnJlZV94IiwgbmNvbCA9IDIpCmxvbmdQc2RQbHQKYGBgCgpIdWguIFRoZXJlIGlzIGEgZ2VuZXJhbCBmbGF0dGVuaW5nIG9mIHRoZSBjdXJ2ZS4gVGhhdCBpcywgdGhlIGxhcmdlIHBhcnRpY2xlcyBnZW5lcmFsbHkgaGF2ZSBhIHN0ZWVwZXIgUFNEIHRoYW4gdGhlIHNtYWxsZXIgcGFydGljbGVzLgoKYGBge3J9CmxvbmdfcHNkX2Jpbm5lZCA8LSBiaW5uZWRfRGVwdGhTdW1tYXJ5ICU+JQogIHNlbGVjdChkZXB0aCwgcHJvZmlsZSwgc21hbGxfaWNwOmJpZ19wc2QsIHBzZCwgaWNwKSAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IGMoLWRlcHRoLCAtcHJvZmlsZSkpICU+JQogIHNlcGFyYXRlKG5hbWUsIGMoImNsYXNzIiwgInZhcmlhYmxlIiksIGV4dHJhID0gIm1lcmdlIiwgZmlsbCA9ICJsZWZ0IikgJT4lCiAgbXV0YXRlKGNsYXNzID0gcmVwbGFjZV9uYShjbGFzcywgInRvdCIpKSAlPiUKICBmaWx0ZXIocHJvZmlsZSA9PSAic3RuXzA0MyIpICU+JQogICNwaXZvdF93aWRlcihuYW1lc19mcm9tID0gdmFyaWFibGUpICU+JQogIHBhc3MKYGBgCgpgYGB7cn0KbG9uZ1BzZFBsdCA8LSBsb25nX3BzZF9iaW5uZWQgJT4lIGdncGxvdChhZXMoeCA9IHZhbHVlLCB5ID0gZGVwdGgsIHNoYXBlID0gY2xhc3MsIGZpbGwgPSBjbGFzcykpICsgZ2VvbV9wb2ludChhbHBoYSA9IDAuNSwgc2l6ZSA9IDMpICsgc2NhbGVfeV9yZXZlcnNlKGJyZWFrcyA9IHNlcShmcm9tID0gMCwgdG8gPSAyNTAwLCBieSA9IDIwMCkpICsgc2NhbGVfeF9jb250aW51b3VzKCkgKyBndWlkZXMoY29sb3VyID0gRkFMU0UpICsgbGFicyh4ID0gIlZhbHVlIikgKyB0aGVtZV9jb3dwbG90KCkgKyBmYWNldF93cmFwKH52YXJpYWJsZSwgc2NhbGVzID0gImZyZWVfeCIsIG5jb2wgPSAyKSArIHNjYWxlX3NoYXBlX21hbnVhbCh2YWx1ZXMgPSAyMToyNSkgKwpzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJ0b3QiID0gImJsYWNrIiwgImJpZyIgPSAiYmx1ZSIsICJzbWFsbCIgPSAicmVkIikpCmxvbmdQc2RQbHQKYGBgCgorIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImJsYWNrIiwgImJsdWUiLCAicmVkIiksIGJyZWFrcyA9IGMoInRvdCIsICJiaWciLCAic21hbGwiKSkKClNvbWV0aGluZyBpcyBzY3Jld2luZyB1cCBteSBsZWdlbmQsIGJ1dCB0aGUgZmFjdCBpcyB0aGUgc21hbGwgcGFydGljbGVzIGRlZmluZSB0aGUgUFNELiBCaWcgcGFydGljbGVzIHRlbmQgdG8gaGF2ZSBzdGVlcGVyIFBTRCwgaW5kaWNhdGluZyBhIGZsYXR0ZW5pbmcgb2YgdGhlIGN1cnZlIGF0IHNtYWxsZXIgdmFsdWVzLgoKaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjE4NjUyMDcvYWRkaW5nLWxlZ2VuZC1nZ3Bsb3QtZG9lc250LXdvcmsKCiMgRGVidWcKCmBgYHtyfQp0ZXN0IDwtIGxvbmdfcHNkX2Jpbm5lZCAlPiUgZmlsdGVyKGRlcHRoIDwgMjAwLCB2YXJpYWJsZSA9PSAicHNkIikgJT4lIHNlbGVjdCgtYyhwcm9maWxlLCB2YXJpYWJsZSkpCnRlc3QgJT4lIGhlYWQKYGBgCmh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQzMjY2NjM2L2luY29ycmVjdC1zaGFwZS1hbmQtZmlsbC1vZi1nZ3Bsb3QtbGVnZW5kCmBgYHtyfQpsb25nUHNkUGx0IDwtIHRlc3QgJT4lIGdncGxvdChhZXMoeCA9IHZhbHVlLCB5ID0gZGVwdGgsIHNoYXBlID0gY2xhc3MsIGZpbGwgPSBjbGFzcykpICsgZ2VvbV9wb2ludChhbHBoYSA9IDAuNSwgc2l6ZSA9IDMpICsgc2NhbGVfeV9yZXZlcnNlKGJyZWFrcyA9IHNlcShmcm9tID0gMCwgdG8gPSAyMDAsIGJ5ID0gNTApKSArIHNjYWxlX3hfY29udGludW91cygpKyBsYWJzKHggPSAiVmFsdWUiKSArIHRoZW1lX2Nvd3Bsb3QoKSAgKyBzY2FsZV9zaGFwZV9tYW51YWwodmFsdWVzID0gMjE6MjUpICsKc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygiYmxhY2siLCAiYmx1ZSIsICJyZWQiKSwgYnJlYWtzID0gYygidG90IiwgImJpZyIsICJzbWFsbCIpLCBsYWJlbHMgPSBjKCJ0b3QiLCAiYmlnIiwgInNtYWxsIikpCmxvbmdQc2RQbHQKYGBgCgpgYGB7cn0KbG9uZ1BzZFBsdCA8LSB0ZXN0ICU+JSBnZ3Bsb3QoYWVzKHggPSB2YWx1ZSwgeSA9IGRlcHRoLCBzaGFwZSA9IGNsYXNzLCBmaWxsID0gY2xhc3MpKSArIGdlb21fcG9pbnQoYWxwaGEgPSAwLjUsIHNpemUgPSAzKSArIHNjYWxlX3lfcmV2ZXJzZShicmVha3MgPSBzZXEoZnJvbSA9IDAsIHRvID0gMjAwLCBieSA9IDUwKSkgKyBzY2FsZV94X2NvbnRpbnVvdXMoKSsgbGFicyh4ID0gIlZhbHVlIikgKyB0aGVtZV9jb3dwbG90KCkgICsgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IDIxOjI1KSArCnNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoInRvdCIgPSAiYmxhY2siLCAiYmlnIiA9ICJibHVlIiwgInNtYWxsIiA9ICJyZWQiKSkKbG9uZ1BzZFBsdApgYGA=